//////////////////////////////////////////////////////////////////////////

#ifndef _CLIENTINFOPACKET_H_
#define _CLIENTINFOPACKET_H_

//////////////////////////////////////////////////////////////////////////

#ifndef _PACKET_H_
#include "packet.h"
#endif

#ifndef _CLIENTINFO_H_
#include "clientinfo.h"
#endif

//////////////////////////////////////////////////////////////////////////


/** Network packet, that contains client info
*
*  @author   Roman Pasechnik
*  @since    Nov 05th, 2009
*  @updated  Nov 05th, 2009
*/
class ClientInfoPacket : public Packet
{
//////////////////////////////////////////////////////////////////////////

public:

//////////////////////////////////////////////////////////////////////////


    /** Constructor */
    ClientInfoPacket( const ClientInfo& _clientInfo );


////////////////////////////////////////////////////////////////////////////////


    /** Get client info */
    const ClientInfo& GetClientInfo() const;


////////////////////////////////////////////////////////////////////////////////

private:

//////////////////////////////////////////////////////////////////////////
//// Serializable interface implementation
//////////////////////////////////////////////////////////////////////////


    /** Accept saver, that serializes the object into buffer */
    virtual void AcceptSaver( Saver& _saver ) const;


//////////////////////////////////////////////////////////////////////////


    /** Client info */
    ClientInfo m_ClientInfo;


//////////////////////////////////////////////////////////////////////////
};


//////////////////////////////////////////////////////////////////////////

#endif

//////////////////////////////////////////////////////////////////////////
